<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /*
        块级作用域:
            在JavaScript中使用{}包裹的代码称为代码块，代码块内部声明的变量外部(有可能)无法被访问
        总结：
            let声明的变量会产生块级作用域，var不会产生块级作用域
            const声明的常量也会产生块级作用域
            不同代码块之间的变量无法互相访问
            推荐使用let或者const声明变量
         */
        {
            let str = "黑马"
            var uname = "taopinqi"//（var 声明的变量没有块级作用域）
        }

        for (let index = 0; index <= 1; index++) {
            console.log(index);//正常访问    
        }
        // console.log(str);无法访问（let声明的变量是块级作用域）
        //console.log(index);无法访问（let声明的变量是块级作用域）

        console.log(uname);

    </script>
</body>

</html>